package com.zhc.dejingapi.pojo.erp;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zhc.dejingapi.entity.QingMoordermainEntity;
import com.zhc.dejingapi.entity.QingMoorderroutingEntity;
import com.zhc.dejingapi.mapper.QingMoordermainMapper;
import com.zhc.dejingapi.mapper.QingMoorderroutingMapper;
import lombok.Data;
import org.springframework.jdbc.core.JdbcTemplate;

import java.math.BigDecimal;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;

@Data
public class BomworkMainUpdModel {



    private Long mainId;

    private Long qingApplyId;

    private String downBatchId;

    private String qingRowCode;

    private String qingApplyUser;

    private String qingApplyDate;

    private String qingUpdateDate;

    private String qingRowState;

    private String moOrderSouce;

    private String cusName;

    private String dispDate;

    private String proBatchNo;

    private String cusCode;

    private String moStatus;

    private String proBatchDateCode;

    private String orgProBatch;

    private String moERI;

    private String routingName;

    private String planStartDate;

    private String planEndDate;

    private String eqCode;

    private String moldCode;

    private String colorCode;

    private Integer proQty;

    private String invCode;

    private Integer planDays;

    private String invStd;

    private String invName;

    private String moCode;

    private String moMemo;

    private String invPIC;

    private String invSOP;

    private String makerUnit;

    private String bomMakerState;


    private String updAction;
    private Long applyId;

    private List<BomworkRoutingUpdModel> routingLists;
 

    //名	类型	长度	小数点
    //eqCode	varchar	40
    //moldCode	varchar	40
    //colorCode	varchar	60

    //planStartDate	varchar	40
    //planEndDate	varchar	40

    //bomMakerState	varchar	20

    public void Copy(QingMoordermainEntity entity){

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        //private Long mainId;
        this.mainId=entity.getMainId();
        //private Long qingApplyId;
        this.qingApplyId=entity.getQingApplyId();
        //private String downBatchId;
        this.downBatchId=entity.getDownBatchId();
        //private String qingRowCode;
        this.qingRowCode=entity.getQingRowCode();
        //private String qingApplyUser;
        this.qingApplyUser=entity.getQingApplyUser();
        //private String qingApplyDate;
        if (entity.getQingApplyDate()==null){
            this.qingApplyDate=null;
        }
        else{
            this.qingApplyDate=entity.getQingApplyDate().format(formatter);
        }

        //private String qingUpdateDate;
        //this.qingUpdateDate=entity.getQingUpdateDate();
        if (entity.getQingApplyDate()==null){
            this.qingUpdateDate=null;
        }
        else{
            this.qingUpdateDate=entity.getQingUpdateDate().format(formatter);
        }
        //private String qingRowState;
        this.qingRowState=entity.getQingRowState();
        //private String moOrderSouce;
        this.moOrderSouce=entity.getMoOrderSouce();
        //private String cusName;
        this.cusName=entity.getCusName();
        //private LocalDateTime dispDate;
        //this.dispDate=entity.getDispDate();
        if (entity.getQingApplyDate()==null){
            this.dispDate=null;
        }
        else{
            this.dispDate=entity.getQingApplyDate().format(formatter);
        }
        //private String proBatchNo;
        this.proBatchNo=entity.getProBatchNo();
        //private String cusCode;
        this.cusCode=entity.getCusCode();
        //private String moStatus;
        this.moStatus=entity.getMoStatus();
        //private String proBatchDateCode;
        this.proBatchDateCode=entity.getProBatchDateCode();
        //private String orgProBatch;
        this.orgProBatch=entity.getOrgProBatch();
        //private String moERI;
        this.moERI=entity.getMoERI();
        //private String routingName;
        this.routingName=entity.getRoutingName();
        //private String planStartDate;
        //this.planStartDate=entity.getPlanStartDate();
        if (entity.getQingApplyDate()==null){
            this.planStartDate=null;
        }
        else{
            this.planStartDate=entity.getPlanStartDate().format(formatter);
        }
        //private String planEndDate;
        //this.planEndDate=entity.getPlanEndDate();
        if (entity.getQingApplyDate()==null){
            this.planEndDate=null;
        }
        else{
            this.planEndDate=entity.getPlanEndDate().format(formatter);
        }
        //private String eqCode;
        this.eqCode=entity.getEqCode();
        //private String moldCode;
        this.moldCode=entity.getMoldCode();
        //private String colorCode;
        this.colorCode=entity.getColorCode();
        //private Integer proQty;
        this.proQty=entity.getProQty();
        //private String invCode;
        this.invCode=entity.getInvCode();
        //private Integer planDays;
        this.planDays=entity.getPlanDays();
        //private String invStd;
        this.invStd=entity.getInvStd();
        //private String invName;
        this.invName=entity.getInvName();
        //private String moCode;
        this.moCode=entity.getMoCode();
        //private String moMemo;
        this.moMemo=entity.getMoMemo();
        //private String invPIC;
        this.invPIC=entity.getInvPIC();
        //private String invSOP;
        this.invSOP=entity.getInvSOP();
        //private String makerUnit;
        this.makerUnit=entity.getMakerUnit();
        //private String bomMakerState;
        this.bomMakerState=entity.getBomMakerState();

//        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");


//        //main_id
//        this.mainId=entity.getMainId();
//
//        //ERI
//        this.eri=entity.getEri();
//        //SRCERI
//        this.srceri=entity.getSrceri();
//        //SDATE
//        if(entity.getSdate()==null)
//            this.sdate=null;
//        else
//            this.sdate= entity.getSdate().format(formatter);
//
//        //CODE
//        this.code=entity.getCode();
//        //MAKER
//        //这个是编码，需要名称
//
//        if(PubInfoUtils.mapMakeList==null||PubInfoUtils.mapMakeList.isEmpty()){
//            this.maker=entity.getMaker();
//        }
//        else{
//            if (PubInfoUtils.mapMakeList.containsKey(entity.getMaker())){
//                this.maker=PubInfoUtils.mapMakeList.get(entity.getMaker());
//            }
//            else {
//                this.maker=entity.getMaker();
//            }
//        }
//
//
//        //MPROD
//        this.mprod=entity.getMprod();
//        //QTY
//        if(entity.getQty()==null){
//            this.qty=0;
//        }
//        else{
//            this.qty=Math.round(entity.getQty());
//
//        }
//        //this.qty= entity.getQty();
//        //SRCQTY
//        //this.srcqty=entity.getSrcqty();
//        if(entity.getSrcqty()==null){
//            this.srcqty=0;
//        }
//        else{
//            this.srcqty=Math.round(entity.getSrcqty());
//
//        }
//        //DUEDATE
//        //this.duedate=entity.getDuedate();
//        if(entity.getDuedate()==null)
//            this.duedate=null;
//        else
//            this.duedate=entity.getDuedate().format(formatter);
//        //PROJNO
//        this.projno=entity.getProjno();
//        //CLOSETYPE
//        this.closetype=entity.getClosetype();
//        //LINDATE
//        //this.lindate=entity.getLindate();
//
//        if(entity.getLindate()==null)
//            this.lindate=null;
//        else
//            this.lindate=entity.getLindate().format(formatter);//sdf.format(entity.getLindate());
//
//        //ENDDATE
//        //this.enddate=entity.getEnddate();
//
//        if(entity.getEnddate()==null)
//            this.enddate=null;
//        else
//            this.enddate=entity.getEnddate().format(formatter);//sdf.format(entity.getEnddate());
//
//
//
//        //PRNIMMED
//        this.prnimmed=entity.getPrnimmed();
//        //PRNONCE
//        this.prnonce=entity.getPrnonce();
//        //ACCGEN
//        this.accgen=entity.getAccgen();
//        //DPTNO
//        this.dptno=entity.getDptno();
//        //ACCNO
//        this.accno=entity.getAccno();
//        //ACCDESC
//        this.accdesc=entity.getAccdesc();
//        //INQTY
//        this.inqty=entity.getInqty();
//        //GOTQTY
//        this.gotqty=entity.getGotqty();
//        //COMQTY
//        this.comqty=entity.getComqty();
//        //ARTICLE
//        this.article=entity.getArticle();
//        //MEMO
//        this.memo=entity.getMemo();
//        //EDITOR
//        this.editor=entity.getEditor();
//        //SCRUTINY
//        this.scrutiny=entity.getScrutiny();
//        //ADSTSUBJ
//        this.adstsubj=entity.getAdstsubj();
//        //SUBJAMT
//        this.subjamt=entity.getSubjamt();
//        //WORKSUBJ
//        this.worksubj=entity.getWorksubj();
//        //EXPSUBJ
//        this.expsubj=entity.getExpsubj();
//        //INCOST
//        this.incost=entity.getIncost();
//        //PRODCOST
//        this.prodcost=entity.getProdcost();
//        //WORKCOST
//        this.workcost=entity.getWorkcost();
//        //EXP
//        this.exp=entity.getExp();
//        //PLUSSUB
//        this.plussub=entity.getPlussub();
//        //TOTCOST
//        this.totcost=entity.getTotcost();
//        //CLOSEPRC
//        this.closeprc=entity.getCloseprc();
//        //TPROD
//        this.tprod=entity.getTprod();
//        //TQTY
//        this.tqty=entity.getTqty();
//        //TSERIAL
//        this.tserial=entity.getTserial();
//        //SHIPMARK
//        this.shipmark=entity.getShipmark();
//        //SHIPMARKERI
//        this.shipmarkeri=entity.getShipmarkeri();
//        //SPEC
//        this.spec=entity.getSpec();
//        //WORKTYPE
//        this.worktype=entity.getWorktype();
//        //BEGINDATE
//        //this.begindate=entity.getBegindate();
//        if(entity.getBegindate()==null)
//            this.begindate=null;
//        else
//            this.begindate=entity.getBegindate().format(formatter);//sdf.format(entity.getBegindate());
//        //RBEGINDATE
//        //this.rbegindate=entity.getRbegindate();
//        if(entity.getRbegindate()==null)
//            this.rbegindate=null;
//        else
//            this.rbegindate=entity.getRbegindate().format(formatter);//sdf.format(entity.getRbegindate());
//        //CURR
//        this.curr=entity.getCurr();
//        //SPRICE
//        this.sprice=entity.getSprice();
//        //SEXP
//        this.sexp=entity.getSexp();
//        //SEXPSUBJ
//        this.sexpsubj=entity.getSexpsubj();
//        //GWN
//        this.gwn=entity.getGwn();
//        //BQTY
//        this.bqty=entity.getBqty();
//        //RCOSTFLAG
//        this.rcostflag=entity.getRcostflag();
//        //PCODE
//        this.pcode=entity.getPcode();
//        //PWTYPE
//        this.pwtype=entity.getPwtype();
//        //INVERTFLAG
//        this.invertflag=entity.getInvertflag();
//        //QTQTY
//        this.qtqty=entity.getQtqty();
//        //PLANDAY
//        this.planday=entity.getPlanday();
//        //STATUS1
//        this.status1=entity.getStatus1();
//        //STATUS2
//        this.status2=entity.getStatus2();
//        //STATUS3
//        this.status3=entity.getStatus3();
//        //STATUS4
//        this.status4=entity.getStatus4();
//        //EDITORCODE
//        this.editorcode=entity.getEditorcode();
//        //LASTEDITOR
//        this.lasteditor=entity.getLasteditor();
//        //COMPNO
//        this.compno=entity.getCompno();
//        //NEEDPRS
//        this.needprs=entity.getNeedprs();
//        //SRCTRACK
//        this.srctrack=entity.getSrctrack();
//        //PRODPRSNO
//        this.prodprsno=entity.getProdprsno();
//        //VPNO
//        this.vpno=entity.getVpno();
//        //VLIDDATE
//        //this.vliddate=entity.getVliddate();
//        if(entity.getVliddate()==null)
//            this.vliddate=null;
//        else
//            this.vliddate=entity.getVliddate().format(formatter);//sdf.format(entity.getVliddate());
//        //STATUS5
//        this.status5=entity.getStatus5();
//        //STATUS6
//        this.status6=entity.getStatus6();
//        //STATUS7
//        this.status7=entity.getStatus7();
//        //STATUS8
//        this.status8=entity.getStatus8();
//        //STATUS9
//        this.status9=entity.getStatus9();
//        //STATUS10
//        this.status10=entity.getStatus10();
//        //NEDERI
//        this.nederi=entity.getNederi();
//        //ORDERI
//        this.orderi=entity.getOrderi();
//        //WORKTIME
//        this.worktime=entity.getWorktime();
//        //MERGEERI
//        this.mergeeri=entity.getMergeeri();
//        //MERGEFLAG
//        this.mergeflag=entity.getMergeflag();
//        //OLDBEGINDATE
//
//        //this.oldbegindate=entity.getOldbegindate();
//        if(entity.getOldbegindate()==null)
//            this.oldbegindate=null;
//        else
//            this.oldbegindate=entity.getOldbegindate().format(formatter);//sdf.format(entity.getOldbegindate());
//
//        //OLDDUEDATE
//        //this.oldduedate=entity.getOldduedate();
//        if(entity.getOldduedate()==null)
//            this.oldduedate=null;
//        else
//            this.oldduedate=entity.getOldduedate().format(formatter);//sdf.format(entity.getOldduedate());
//        //PKERI
//        this.pkeri=entity.getPkeri();
//        //GETQTY
//        this.getqty=entity.getGetqty();
//        //OUQTY
//        this.ouqty=entity.getOuqty();
//        //OTHERUNIT
//        this.otherunit=entity.getOtherunit();
//        //INOUQTY
//        this.inouqty=entity.getInouqty();
//        //OUQTYNOTCALC
//        this.ouqtynotcalc=entity.getOuqtynotcalc();
//        //ADSTINQTY
//        this.adstinqty=entity.getAdstinqty();
//        //ADSTINAMT
//        this.adstinamt=entity.getAdstinamt();
//        //PRSWORKCOST
//        this.prsworkcost=entity.getPrsworkcost();
//        //PRSEXP
//        this.prsexp=entity.getPrsexp();
//        //PRSSEXP
//        this.prssexp=entity.getPrssexp();
//        //ISTODSPWORK
//        this.istodspwork=entity.getIstodspwork();
//        //AMEXP
//        this.amexp=entity.getAmexp();
//        //ISPRSALLT
//        this.isprsallt=entity.getIsprsallt();
//        //MEDQTY
//        this.medqty=entity.getMedqty();
//        //ISDSGWORK
//        this.isdsgwork=entity.getIsdsgwork();
//        //PHSQTY
//        this.phsqty=entity.getPhsqty();
//        //BOMVER
//        this.bomver=entity.getBomver();
//        //ORDBOMERI
//        this.ordbomeri=entity.getOrdbomeri();
//        //TOTWORKTIME
//        this.totworktime=entity.getTotworktime();
//        //OMEDQTY
//        this.omedqty=entity.getOmedqty();
//        //USECOST1
//        this.usecost1=entity.getUsecost1();
//        //USECOST2
//        this.usecost2=entity.getUsecost2();
//        //USECOST3
//        this.usecost3=entity.getUsecost3();
//        //USECOST4
//        this.usecost4=entity.getUsecost4();
//        //USECOST5
//        this.usecost5=entity.getUsecost5();
//        //USECOST6
//        this.usecost6=entity.getUsecost6();
//        //USECOST7
//        this.usecost7=entity.getUsecost7();
//        //USECOST8
//        this.usecost8=entity.getUsecost8();
//        //USECOST9
//        this.usecost9=entity.getUsecost9();
//        //USECOST10
//        this.usecost10=entity.getUsecost10();
//        //AUDITSTATE
//        this.auditstate=entity.getAuditstate();
//        //BOMTYPE
//        this.bomtype=entity.getBomtype();
//        //BOMERI
//        this.bomeri=entity.getBomeri();
//        //HASBOMWORK3
//        this.hasbomwork3=entity.getHasbomwork3();
//        //SCRUTINY1
//        this.scrutiny1=entity.getScrutiny1();
//        //SCRDATE1
//        //this.scrdate1=entity.getScrdate1();
//        if(entity.getScrdate1()==null)
//            this.scrdate1=null;
//        else
//            this.scrdate1=entity.getScrdate1().format(formatter);//sdf.format(entity.getScrdate1());
//        //DISVARY
//        this.disvary=entity.getDisvary();
//        //SPLITERI
//        this.spliteri=entity.getSpliteri();
//        //SPLITQTY
//        this.splitqty=entity.getSplitqty();
//        //SPLITFLAG
//        this.splitflag=entity.getSplitflag();
//        //EQUIPCODE
//        this.equipcode=entity.getEquipcode();
//        //PUSERFLD1
//        this.puserfld1=entity.getPuserfld1();
//        //PUSERFLD2
//        this.puserfld2=entity.getPuserfld2();
//        //PUSERFLD3
//        this.puserfld3=entity.getPuserfld3();
//        //PUSERFLD4
//        this.puserfld4=entity.getPuserfld4();
//        //PUSERFLD5
//        this.puserfld5=entity.getPuserfld5();
//        //PUSERFLD6
//        this.puserfld6=entity.getPuserfld6();
//        //PUSERFLD7
//        this.puserfld7=entity.getPuserfld7();
//        //PUSERFLD8
//        this.puserfld8=entity.getPuserfld8();
//        //PUSERFLD9
//        this.puserfld9=entity.getPuserfld9();
//        //PUSERFLD10
//        this.puserfld10=entity.getPuserfld10();
//        //PUSERFLD11
//        this.puserfld11=entity.getPuserfld11();
//        //PUSERFLD12
//        this.puserfld12=entity.getPuserfld12();
//        //PUSERFLD13
//        this.puserfld13=entity.getPuserfld13();
//        //PUSERFLD14
//        this.puserfld14=entity.getPuserfld14();
//        //PUSERFLD15
//        this.puserfld15=entity.getPuserfld15();
//        //PUSERFLD16
//        this.puserfld16=entity.getPuserfld16();
//        //PUSERFLD17
//        this.puserfld17=entity.getPuserfld17();
//        //PUSERFLD18
//        this.puserfld18=entity.getPuserfld18();
//        //PUSERFLD19
//        this.puserfld19=entity.getPuserfld19();
//        //PUSERFLD20
//        this.puserfld20=entity.getPuserfld20();
//        //PRODJS
//        this.prodjs=entity.getProdjs();
//        //JTQTY
//        this.jtqty=entity.getJtqty();
//        //PLANERI
//        this.planeri=entity.getPlaneri();
//        //SCRDATE
//        //this.scrdate=entity.getScrdate();
//        if(entity.getScrdate()==null)
//            this.scrdate="";
//        else
//            this.scrdate=entity.getScrdate().format(formatter);//sdf.format(entity.getScrdate());
//        //APCODE
//        this.apcode=entity.getApcode();
//        //LASTUPD
//        this.lastupd=entity.getLastupd();
//        //applyId
//        this.applyId=entity.getApplyId();
//        //sha1_value
//        this.sha1Value=entity.getSha1Value();
//        //isNeedUpd
//        this.isNeedUpd=entity.getIsNeedUpd();
//        //updAction
//        this.updAction=entity.getUpdAction();
//        //isDeal
//        this.isDeal=entity.getIsDeal();
//        //DealDate
//        //this.dealDate=entity.getDealDate();
//        if(entity.getDealDate()==null)
//            this.dealDate=null;
//        else
//            this.dealDate=entity.getDealDate().format(formatter);//sdf.format(entity.getDealDate());
//        //errCode
//        this.errCode=entity.getErrCode();
//        //errMsg
//        this.errMsg=entity.getErrMsg();
//        //qingflowCode
//        this.qingflowCode=entity.getQingflowCode();
//        //lastRequestId
//        this.lastRequestId=entity.getLastRequestId();
//        //isWaiting
//        this.isWaiting=entity.getIsWaiting();
//        //actionResult
//        this.actionResult=entity.getActionResult();
//
//        if(vpno==null||vpno.isEmpty()){
//
//        }
//        else if(vpno.length()<6){
//            vpnoLast=vpno;
//        }
//        else{
//            vpnoLast=vpno.substring(vpno.length()-6);
//        }
//
//        needDays= ChronoUnit.DAYS.between(entity.getBegindate(),entity.getDuedate())+1;


    }

    public void LoadRouting(JdbcTemplate mySqlJdbc,
                            QingMoordermainMapper qingMoordermainMapper,
                            QingMoorderroutingMapper qingMoorderroutingMapper) throws Exception{

        //    private String qingApplyId;//行Id
//    private String eqCode;
//    private String moldCode;

        String strSql="SELECT qingApplyId,eqCode,moldCode,main_id,moOrderSouce from qing_moordermain where moERI=? \n"+
                "ORDER BY main_Id DESC \n" +
                "LIMIT 1 ";
//        Map<String,Object> mapResult=mySqlJdbc.queryForMap(strSql,moERI);
//
//        if(mapResult==null||mapResult.isEmpty()){
//
//        }
//        else{
//            Object objValue=mapResult.get("qingApplyId");
//            if(objValue==null){
//
//            }
//            else{
//                this.qingApplyId=objValue.toString();
//            }
//            objValue=mapResult.get("eqCode");
//            if(objValue==null){
//
//            }
//            else{
//                this.eqCode=objValue.toString();
//            }
//            objValue=mapResult.get("moldCode");
//            if(objValue==null){
//
//            }
//            else{
//                this.moldCode=objValue.toString();
//            }
//            objValue=mapResult.get("main_id");
//            if(objValue==null){
//
//            }
//            else{
//                this.main_id=objValue.toString();
//            }
//
//            objValue=mapResult.get("moOrderSouce");
//            if(objValue==null){
//
//            }
//            else{
//                this.orderSouceType=objValue.toString();
//            }
//        }

        List<QingMoorderroutingEntity> listRouting=qingMoorderroutingMapper.selectList(
                new QueryWrapper<QingMoorderroutingEntity>().eq("main_id",this.mainId));
        if(listRouting==null||listRouting.isEmpty()){

        }
        else{
            this.routingLists=new ArrayList<>();

            for(QingMoorderroutingEntity entity:listRouting){
                BomworkRoutingUpdModel model=new BomworkRoutingUpdModel();
               
                try {
                    model.Copy(entity);

                    model.setOpQty(new BigDecimal(proQty));
                    this.routingLists.add(model);
                }
                catch (Exception e){
                    e.printStackTrace();
                    throw  e;
                }

            }//for (QingMoorderroutingEntity entity:listRouting)
            //this.routingLists=listRouting;
        }

    }


}
